using System;
using System.Text;
using System.Reflection;
using System.ServiceModel;
using System.Collections.Generic;
using System.Runtime.Serialization;
using TDS = Tridion.ContentManager.Interop.TDS;
using TDSDefines = Tridion.ContentManager.Interop.TDSDefines;



#pragma warning disable 649
namespace Tridion.Gateway
{
	[DataContract]
	public class TridionWebSchemaField:Facade
	{
        internal TridionWebSchemaField(TDS.TridionWebSchemaField TridionWebSchemaField, bool ShallowCopy)
            : base(typeof(TDS._TridionWebSchemaField), TridionWebSchemaField, ShallowCopy)
		{
		}

		[DataMember(Name="Name")]
		private String name;
		public String Name
		{
			 get { return name; }
		}


		[DataMember(Name="DefaultValue")]
		private String defaultvalue;
		public String DefaultValue
		{
			 get { return defaultvalue; }
			 set { defaultvalue = value; }
		}


		[DataMember(Name="HasDefaultValue")]
		private Boolean hasdefaultvalue;
		public Boolean HasDefaultValue
		{
			 get { return hasdefaultvalue; }
		}


		[DataMember(Name="Description")]
		private String description;
		public String Description
		{
			 get { return description; }
			 set { description = value; }
		}


		[DataMember(Name="FieldType")]
		private TDSDefines.EnumTridionWebSchemaFieldType fieldtype;
		public TDSDefines.EnumTridionWebSchemaFieldType FieldType
		{
			 get { return fieldtype; }
			 set { fieldtype = value; }
		}


		[DataMember(Name="Size")]
		private Int32 size;
		public Int32 Size
		{
			 get { return size; }
			 set { size = value; }
		}


		[DataMember(Name="ListType")]
		private TDSDefines.EnumTDSListTypes listtype;
		public TDSDefines.EnumTDSListTypes ListType
		{
			 get { return listtype; }
			 set { listtype = value; }
		}


		[DataMember(Name="MinOccurs")]
		private Int32 minoccurs;
		public Int32 MinOccurs
		{
			 get { return minoccurs; }
			 set { minoccurs = value; }
		}


		[DataMember(Name="MaxOccurs")]
		private Int32 maxoccurs;
		public Int32 MaxOccurs
		{
			 get { return maxoccurs; }
			 set { maxoccurs = value; }
		}


        //TODO:Fix
        //[DataMember(Name="ListEntries")]
        //private TridionWebSchemaListEntries listentries;
        //public TridionWebSchemaListEntries ListEntries
        //{
        //     get { return listentries; }
        //}


		[DataMember(Name="EmbeddedSchema")]
		private Schema embeddedschema;
		public Schema EmbeddedSchema
		{
			 get { return embeddedschema; }
			 set { embeddedschema = value; }
		}


		[DataMember(Name="AllowMultimediaLinks")]
		private Boolean allowmultimedialinks;
		public Boolean AllowMultimediaLinks
		{
			 get { return allowmultimedialinks; }
			 set { allowmultimedialinks = value; }
		}


        //TODO:Fix
        //[DataMember(Name="AllowedTargetSchemas")]
        //private Schemas allowedtargetschemas;
        //public Schemas AllowedTargetSchemas
        //{
        //     get { return allowedtargetschemas; }
        //     set { allowedtargetschemas = value; }
        //}


		[DataMember(Name="CustomURL")]
		private String customurl;
		public String CustomURL
		{
			 get { return customurl; }
			 set { customurl = value; }
		}


		[DataMember(Name="FilterXSLT")]
		private String filterxslt;
		public String FilterXSLT
		{
			 get { return filterxslt; }
			 set { filterxslt = value; }
		}


		[DataMember(Name="Category")]
		private Category category;
		public Category Category
		{
			 get { return category; }
			 set { category = value; }
		}


        //TODO:Fix
        //[DataMember(Name="Pattern")]
        //private Object pattern;
        //public Object Pattern
        //{
        //     get { return pattern; }
        //     set { pattern = value; }
        //}


        //[DataMember(Name="MinLength")]
        //private Object minlength;
        //public Object MinLength
        //{
        //     get { return minlength; }
        //     set { minlength = value; }
        //}


        //[DataMember(Name="MaxLength")]
        //private Object maxlength;
        //public Object MaxLength
        //{
        //     get { return maxlength; }
        //     set { maxlength = value; }
        //}


        //[DataMember(Name="TotalDigits")]
        //private Object totaldigits;
        //public Object TotalDigits
        //{
        //     get { return totaldigits; }
        //     set { totaldigits = value; }
        //}


        //[DataMember(Name="FractionDigits")]
        //private Object fractiondigits;
        //public Object FractionDigits
        //{
        //     get { return fractiondigits; }
        //     set { fractiondigits = value; }
        //}


        //[DataMember(Name="MinValue")]
        //private Object minvalue;
        //public Object MinValue
        //{
        //     get { return minvalue; }
        //     set { minvalue = value; }
        //}

        
        //[DataMember(Name="MaxValue")]
        //private Object maxvalue;
        //public Object MaxValue
        //{
        //     get { return maxvalue; }
        //     set { maxvalue = value; }
        //}


        [DataMember(Name="IsMinValueExclusive")]
		private Boolean isminvalueexclusive;
		public Boolean IsMinValueExclusive
		{
			 get { return isminvalueexclusive; }
			 set { isminvalueexclusive = value; }
		}
		

		[DataMember(Name="IsMaxValueExclusive")]
		private Boolean ismaxvalueexclusive;
		public Boolean IsMaxValueExclusive
		{
			 get { return ismaxvalueexclusive; }
			 set { ismaxvalueexclusive = value; }
		}


        protected override void Initialize(FieldInfo field, PropertyInfo property, Object value)
        {

        }

	}
}

/*
*/
